<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CANopenNode: 301/CO_driver.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CANopenNode
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('CO__driver_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">CO_driver.h File Reference<div class="ingroups"><a class="el" href="group__CO__CANopen__301.html">CANopen_301</a> &raquo; <a class="el" href="group__CO__driver.html">Driver</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface between CAN hardware and CANopenNode.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;string.h&gt;</code><br />
<code>#include &quot;<a class="el" href="CO__config_8h_source.html">CO_config.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="CO__driver__target_8h_source.html">CO_driver_target.h</a>&quot;</code><br />
</div>
<p><a href="CO__driver_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structCO__CANrx__t.html">CO_CANrx_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration object for CAN received message for specific <a class="el" href="group__CO__driver.html#CO_obj">CANopenNode Object</a>.  <a href="structCO__CANrx__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structCO__CANtx__t.html">CO_CANtx_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration object for CAN transmit message for specific <a class="el" href="group__CO__driver.html#CO_obj">CANopenNode Object</a>.  <a href="structCO__CANtx__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Complete CAN module object.  <a href="structCO__CANmodule__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga0e351c2972f6d8f2e08fb5ac21a833b8"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga0e351c2972f6d8f2e08fb5ac21a833b8">CO_VERSION_MAJOR</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:ga0e351c2972f6d8f2e08fb5ac21a833b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Major version number of CANopenNode. <br /></td></tr>
<tr class="separator:ga0e351c2972f6d8f2e08fb5ac21a833b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac3f110c1dd3cfc2b994b5c20d1c6ace"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gaac3f110c1dd3cfc2b994b5c20d1c6ace">CO_VERSION_MINOR</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:gaac3f110c1dd3cfc2b994b5c20d1c6ace"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minor version number of CANopenNode. <br /></td></tr>
<tr class="separator:gaac3f110c1dd3cfc2b994b5c20d1c6ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed3e1bffaf912485092fc20193705f35"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaed3e1bffaf912485092fc20193705f35">CO_LITTLE_ENDIAN</a></td></tr>
<tr class="memdesc:gaed3e1bffaf912485092fc20193705f35"><td class="mdescLeft">&#160;</td><td class="mdescRight">CO_LITTLE_ENDIAN or CO_BIG_ENDIAN must be defined. <br /></td></tr>
<tr class="separator:gaed3e1bffaf912485092fc20193705f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1717fcaabbe2cd6cd9fc0bc0cb917a6c"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga1717fcaabbe2cd6cd9fc0bc0cb917a6c">CO_SWAP_16</a>(x)&#160;&#160;&#160;x</td></tr>
<tr class="memdesc:ga1717fcaabbe2cd6cd9fc0bc0cb917a6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro must swap bytes, if CO_BIG_ENDIAN is defined. <br /></td></tr>
<tr class="separator:ga1717fcaabbe2cd6cd9fc0bc0cb917a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf87da54942e3a0ff159688c5e0e267b"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gadf87da54942e3a0ff159688c5e0e267b">CO_SWAP_32</a>(x)&#160;&#160;&#160;x</td></tr>
<tr class="memdesc:gadf87da54942e3a0ff159688c5e0e267b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro must swap bytes, if CO_BIG_ENDIAN is defined. <br /></td></tr>
<tr class="separator:gadf87da54942e3a0ff159688c5e0e267b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec0fc209357883f42d66cd2cdaa7236f"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaec0fc209357883f42d66cd2cdaa7236f">CO_SWAP_64</a>(x)&#160;&#160;&#160;x</td></tr>
<tr class="memdesc:gaec0fc209357883f42d66cd2cdaa7236f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro must swap bytes, if CO_BIG_ENDIAN is defined. <br /></td></tr>
<tr class="separator:gaec0fc209357883f42d66cd2cdaa7236f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga070d2ce7b6bb7e5c05602aa8c308d0c4"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>&#160;&#160;&#160;(0)</td></tr>
<tr class="memdesc:ga070d2ce7b6bb7e5c05602aa8c308d0c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL, for general usage. <br /></td></tr>
<tr class="separator:ga070d2ce7b6bb7e5c05602aa8c308d0c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical true, for general use. <br /></td></tr>
<tr class="separator:ga41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65e9886d74aaee76545e83dd09011727"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga65e9886d74aaee76545e83dd09011727">false</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga65e9886d74aaee76545e83dd09011727"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logical false, for general use. <br /></td></tr>
<tr class="separator:ga65e9886d74aaee76545e83dd09011727"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7566ee901bbf1a0d76d771d72d2f826f"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga7566ee901bbf1a0d76d771d72d2f826f">CO_LOCK_CAN_SEND</a>()</td></tr>
<tr class="memdesc:ga7566ee901bbf1a0d76d771d72d2f826f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock critical section in <a class="el" href="group__CO__driver.html#ga4664a9f5d547cb0605a9e929fb079f2e" title="Send CAN message.">CO_CANsend()</a> <br /></td></tr>
<tr class="separator:ga7566ee901bbf1a0d76d771d72d2f826f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga511a5a0bf905c2207d5c9e26d35fe3cc"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga511a5a0bf905c2207d5c9e26d35fe3cc">CO_UNLOCK_CAN_SEND</a>()</td></tr>
<tr class="memdesc:ga511a5a0bf905c2207d5c9e26d35fe3cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock critical section in <a class="el" href="group__CO__driver.html#ga4664a9f5d547cb0605a9e929fb079f2e" title="Send CAN message.">CO_CANsend()</a> <br /></td></tr>
<tr class="separator:ga511a5a0bf905c2207d5c9e26d35fe3cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3052a84235f56d535a14705e0cfda799"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga3052a84235f56d535a14705e0cfda799">CO_LOCK_EMCY</a>()</td></tr>
<tr class="memdesc:ga3052a84235f56d535a14705e0cfda799"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock critical section in <a class="el" href="group__CO__Emergency.html#gab66d4a6daa5f7492704b56a46b135f71" title="Report error condition, for description of parameters see CO_error.">CO_errorReport()</a> or <a class="el" href="group__CO__Emergency.html#ga24e2a9311cf704ec6ed43b0ea730c4a3" title="Reset error condition, for description of parameters see CO_error.">CO_errorReset()</a> <br /></td></tr>
<tr class="separator:ga3052a84235f56d535a14705e0cfda799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga720a798f2bf7fe20d9c95a212b4df417"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga720a798f2bf7fe20d9c95a212b4df417">CO_UNLOCK_EMCY</a>()</td></tr>
<tr class="memdesc:ga720a798f2bf7fe20d9c95a212b4df417"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock critical section in <a class="el" href="group__CO__Emergency.html#gab66d4a6daa5f7492704b56a46b135f71" title="Report error condition, for description of parameters see CO_error.">CO_errorReport()</a> or <a class="el" href="group__CO__Emergency.html#ga24e2a9311cf704ec6ed43b0ea730c4a3" title="Reset error condition, for description of parameters see CO_error.">CO_errorReset()</a> <br /></td></tr>
<tr class="separator:ga720a798f2bf7fe20d9c95a212b4df417"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3850830931ced2bd3d7e15821572bbcc"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga3850830931ced2bd3d7e15821572bbcc">CO_LOCK_OD</a>()</td></tr>
<tr class="memdesc:ga3850830931ced2bd3d7e15821572bbcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock critical section when accessing Object Dictionary. <br /></td></tr>
<tr class="separator:ga3850830931ced2bd3d7e15821572bbcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2477f5d24fd31a9f4052cf451b87809f"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga2477f5d24fd31a9f4052cf451b87809f">CO_UNLOCK_OD</a>()</td></tr>
<tr class="memdesc:ga2477f5d24fd31a9f4052cf451b87809f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unock critical section when accessing Object Dictionary. <br /></td></tr>
<tr class="separator:ga2477f5d24fd31a9f4052cf451b87809f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga577a6ebcf246087f084c75d9ae25eeb7"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga577a6ebcf246087f084c75d9ae25eeb7">CO_FLAG_READ</a>(rxNew)&#160;&#160;&#160;((rxNew) != <a class="el" href="group__CO__dataTypes.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</td></tr>
<tr class="memdesc:ga577a6ebcf246087f084c75d9ae25eeb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if new message has arrived. <br /></td></tr>
<tr class="separator:ga577a6ebcf246087f084c75d9ae25eeb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac54b5e4f680aa8b0177f0df5d5be2e88"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#gac54b5e4f680aa8b0177f0df5d5be2e88">CO_FLAG_SET</a>(rxNew)&#160;&#160;&#160;{ __sync_synchronize(); rxNew = (void *)1L; }</td></tr>
<tr class="memdesc:gac54b5e4f680aa8b0177f0df5d5be2e88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set new message flag. <br /></td></tr>
<tr class="separator:gac54b5e4f680aa8b0177f0df5d5be2e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga044da4253aeed15c3e0bb7fce13664af"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__critical__sections.html#ga044da4253aeed15c3e0bb7fce13664af">CO_FLAG_CLEAR</a>(rxNew)&#160;&#160;&#160;{ __sync_synchronize(); rxNew = <a class="el" href="group__CO__dataTypes.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>; }</td></tr>
<tr class="memdesc:ga044da4253aeed15c3e0bb7fce13664af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear new message flag. <br /></td></tr>
<tr class="separator:ga044da4253aeed15c3e0bb7fce13664af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaa84189910b720ce18c8d83aab405d86"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gaaa84189910b720ce18c8d83aab405d86">CO_errinfo</a>(CANmodule,  err)</td></tr>
<tr class="memdesc:gaaa84189910b720ce18c8d83aab405d86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for passing additional information about error.  <a href="group__CO__driver.html#gaaa84189910b720ce18c8d83aab405d86">More...</a><br /></td></tr>
<tr class="separator:gaaa84189910b720ce18c8d83aab405d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga449976458a084f880dc8e3d29e7eb6f5"><td class="memItemLeft" align="right" valign="top">
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a></td></tr>
<tr class="memdesc:ga449976458a084f880dc8e3d29e7eb6f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean data type for general use. <br /></td></tr>
<tr class="separator:ga449976458a084f880dc8e3d29e7eb6f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef44329758059c91c76d334e8fc09700"><td class="memItemLeft" align="right" valign="top">
typedef signed char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaef44329758059c91c76d334e8fc09700">int8_t</a></td></tr>
<tr class="memdesc:gaef44329758059c91c76d334e8fc09700"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER8 in CANopen (0002h), 8-bit signed integer. <br /></td></tr>
<tr class="separator:gaef44329758059c91c76d334e8fc09700"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga932e6ccc3d54c58f761c1aead83bd6d7"><td class="memItemLeft" align="right" valign="top">
typedef signed int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga932e6ccc3d54c58f761c1aead83bd6d7">int16_t</a></td></tr>
<tr class="memdesc:ga932e6ccc3d54c58f761c1aead83bd6d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER16 in CANopen (0003h), 16-bit signed integer. <br /></td></tr>
<tr class="separator:ga932e6ccc3d54c58f761c1aead83bd6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb828ef50c2dbb783109824e94cf6c47"><td class="memItemLeft" align="right" valign="top">
typedef signed long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gadb828ef50c2dbb783109824e94cf6c47">int32_t</a></td></tr>
<tr class="memdesc:gadb828ef50c2dbb783109824e94cf6c47"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER32 in CANopen (0004h), 32-bit signed integer. <br /></td></tr>
<tr class="separator:gadb828ef50c2dbb783109824e94cf6c47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga831d6234342279926bb11bad3a37add9"><td class="memItemLeft" align="right" valign="top">
typedef signed long long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga831d6234342279926bb11bad3a37add9">int64_t</a></td></tr>
<tr class="memdesc:ga831d6234342279926bb11bad3a37add9"><td class="mdescLeft">&#160;</td><td class="mdescRight">INTEGER64 in CANopen (0015h), 64-bit signed integer. <br /></td></tr>
<tr class="separator:ga831d6234342279926bb11bad3a37add9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba7bc1797add20fe3efdf37ced1182c5"><td class="memItemLeft" align="right" valign="top">
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a></td></tr>
<tr class="memdesc:gaba7bc1797add20fe3efdf37ced1182c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED8 in CANopen (0005h), 8-bit unsigned integer. <br /></td></tr>
<tr class="separator:gaba7bc1797add20fe3efdf37ced1182c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f1825b69244eb3ad2c7165ddc99c956"><td class="memItemLeft" align="right" valign="top">
typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a></td></tr>
<tr class="memdesc:ga1f1825b69244eb3ad2c7165ddc99c956"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED16 in CANopen (0006h), 16-bit unsigned integer. <br /></td></tr>
<tr class="separator:ga1f1825b69244eb3ad2c7165ddc99c956"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33594304e786b158f3fb30289278f5af"><td class="memItemLeft" align="right" valign="top">
typedef unsigned long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a></td></tr>
<tr class="memdesc:ga33594304e786b158f3fb30289278f5af"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED32 in CANopen (0007h), 32-bit unsigned integer. <br /></td></tr>
<tr class="separator:ga33594304e786b158f3fb30289278f5af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad27ed092432b64ff558d2254c278720f"><td class="memItemLeft" align="right" valign="top">
typedef unsigned long long int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gad27ed092432b64ff558d2254c278720f">uint64_t</a></td></tr>
<tr class="memdesc:gad27ed092432b64ff558d2254c278720f"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNSIGNED64 in CANopen (001Bh), 64-bit unsigned integer. <br /></td></tr>
<tr class="separator:gad27ed092432b64ff558d2254c278720f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4611b605e45ab401f02cab15c5e38715"><td class="memItemLeft" align="right" valign="top">
typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga4611b605e45ab401f02cab15c5e38715">float32_t</a></td></tr>
<tr class="memdesc:ga4611b605e45ab401f02cab15c5e38715"><td class="mdescLeft">&#160;</td><td class="mdescRight">REAL32 in CANopen (0008h), single precision floating point value, 32-bit. <br /></td></tr>
<tr class="separator:ga4611b605e45ab401f02cab15c5e38715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac55f3ae81b5bc9053760baacf57e47f4"><td class="memItemLeft" align="right" valign="top">
typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gac55f3ae81b5bc9053760baacf57e47f4">float64_t</a></td></tr>
<tr class="memdesc:gac55f3ae81b5bc9053760baacf57e47f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">REAL64 in CANopen (0011h), double precision floating point value, 64-bit. <br /></td></tr>
<tr class="separator:gac55f3ae81b5bc9053760baacf57e47f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40bb5262bf908c328fbcfbe5d29d0201"><td class="memItemLeft" align="right" valign="top">
typedef char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga40bb5262bf908c328fbcfbe5d29d0201">char_t</a></td></tr>
<tr class="memdesc:ga40bb5262bf908c328fbcfbe5d29d0201"><td class="mdescLeft">&#160;</td><td class="mdescRight">VISIBLE_STRING in CANopen (0009h), string of signed 8-bit values. <br /></td></tr>
<tr class="separator:ga40bb5262bf908c328fbcfbe5d29d0201"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00f664c467579d7b2839d6926b6f33a6"><td class="memItemLeft" align="right" valign="top">
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#ga00f664c467579d7b2839d6926b6f33a6">oChar_t</a></td></tr>
<tr class="memdesc:ga00f664c467579d7b2839d6926b6f33a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">OCTET_STRING in CANopen (000Ah), string of unsigned 8-bit values. <br /></td></tr>
<tr class="separator:ga00f664c467579d7b2839d6926b6f33a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc433a2a90dacd3b2b3801dd9431c254"><td class="memItemLeft" align="right" valign="top">
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__dataTypes.html#gadc433a2a90dacd3b2b3801dd9431c254">domain_t</a></td></tr>
<tr class="memdesc:gadc433a2a90dacd3b2b3801dd9431c254"><td class="mdescLeft">&#160;</td><td class="mdescRight">DOMAIN in CANopen (000Fh), used to transfer a large block of data. <br /></td></tr>
<tr class="separator:gadc433a2a90dacd3b2b3801dd9431c254"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga01dd35ae53fd2209ceccabdc8bf8dd06"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga01dd35ae53fd2209ceccabdc8bf8dd06">CO_Default_CAN_ID_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a335d0f6204819d267ba396b715f66ead">CO_CAN_ID_NMT_SERVICE</a> = 0x000, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a0ba8a628aa1a873a21820070261c2783">CO_CAN_ID_GFC</a> = 0x001, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a7a8486aaf2f35eb83c6ca690d0cdce06">CO_CAN_ID_SYNC</a> = 0x080, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a94ffef8babcef5b807c5f8c865ef7666">CO_CAN_ID_EMERGENCY</a> = 0x080, 
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06ab2e20e54189f5cb565e80b05eb8c4931">CO_CAN_ID_TIME</a> = 0x100, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06aefe4dd6630902d36173b81c106a813bc">CO_CAN_ID_SRDO_1</a> = 0x0FF, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a848f2bdb085bc3a342400a6b43c37f82">CO_CAN_ID_TPDO_1</a> = 0x180, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a0ab4be02961987ad817a99a4ef379517">CO_CAN_ID_RPDO_1</a> = 0x200, 
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06acb90f0dab2e31982df1bebae6dd02e4b">CO_CAN_ID_TPDO_2</a> = 0x280, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a60081a7b09921c6bfce3762a3dd4e49f">CO_CAN_ID_RPDO_2</a> = 0x300, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a83b73730655607582d1dabc8f78f7ca4">CO_CAN_ID_TPDO_3</a> = 0x380, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06ad634b89f227db86bc8c633dda327e5fb">CO_CAN_ID_RPDO_3</a> = 0x400, 
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06abe92c9f7938ad6566e8aa010ab6f5cae">CO_CAN_ID_TPDO_4</a> = 0x480, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06afec9dfa33a34beef50c434e5cde68c6b">CO_CAN_ID_RPDO_4</a> = 0x500, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a3c84d92ad004cfc04e398193b742d30c">CO_CAN_ID_SDO_SRV</a> = 0x580, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06acfe8640033d9668fafc63aa81d68ede5">CO_CAN_ID_SDO_CLI</a> = 0x600, 
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a0cfd21623475a1a8522b30b8b16d9874">CO_CAN_ID_HEARTBEAT</a> = 0x700, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06a4a62af7fb0b8768e57945a558a0ceee4">CO_CAN_ID_LSS_SLV</a> = 0x7E4, 
<a class="el" href="group__CO__driver.html#gga01dd35ae53fd2209ceccabdc8bf8dd06ad7d16ed89e513b035104e4b2634ce287">CO_CAN_ID_LSS_MST</a> = 0x7E5
<br />
 }</td></tr>
<tr class="memdesc:ga01dd35ae53fd2209ceccabdc8bf8dd06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default CANopen identifiers.  <a href="group__CO__driver.html#ga01dd35ae53fd2209ceccabdc8bf8dd06">More...</a><br /></td></tr>
<tr class="separator:ga01dd35ae53fd2209ceccabdc8bf8dd06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c5539afb3a95af43f5477d904607426"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga6c5539afb3a95af43f5477d904607426">CO_CAN_ERR_status_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a725e4fe057c2f9d222850686a76c724d">CO_CAN_ERRTX_WARNING</a> = 0x0001, 
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a85d05e861dc03e256dccf977ae16ad6e">CO_CAN_ERRTX_PASSIVE</a> = 0x0002, 
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426ae58aa7d0eb5d13630f858a3869f0ee7d">CO_CAN_ERRTX_BUS_OFF</a> = 0x0004, 
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426ad6fba8a27d82774f53812d3a49655d12">CO_CAN_ERRTX_OVERFLOW</a> = 0x0008, 
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426ac0b993c7786f41a8c73ad0339124881b">CO_CAN_ERRTX_PDO_LATE</a> = 0x0080, 
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a6df88a8a296eb4addc12d9136c0566b0">CO_CAN_ERRRX_WARNING</a> = 0x0100, 
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a51494ad0df1e2de6d9395f1803c4b233">CO_CAN_ERRRX_PASSIVE</a> = 0x0200, 
<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a714a0b9c0978ffde5f138a81880a1fdd">CO_CAN_ERRRX_OVERFLOW</a> = 0x0800, 
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga6c5539afb3a95af43f5477d904607426a5ad44f86d5691f2bc809f722364516e0">CO_CAN_ERR_WARN_PASSIVE</a> = 0x0303
<br />
 }</td></tr>
<tr class="memdesc:ga6c5539afb3a95af43f5477d904607426"><td class="mdescLeft">&#160;</td><td class="mdescRight">CAN error status bitmasks.  <a href="group__CO__driver.html#ga6c5539afb3a95af43f5477d904607426">More...</a><br /></td></tr>
<tr class="separator:ga6c5539afb3a95af43f5477d904607426"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1cb2d3466eb0c6d267f3b5ff1a0d9532"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">CO_ReturnError_t</a> { <br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532aff1c3e9fd4bf65e6757b020f752cdac8">CO_ERROR_NO</a> = 0, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a3e78d588c0e21630c9cb7b43bfda3dae">CO_ERROR_ILLEGAL_ARGUMENT</a> = -1, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a2f07295c4c6539c2b390db2d7c351267">CO_ERROR_OUT_OF_MEMORY</a> = -2, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a129c7141c52ae59d37a2fff163fec600">CO_ERROR_TIMEOUT</a> = -3, 
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a0214308865e83b8c21de7317b3070097">CO_ERROR_ILLEGAL_BAUDRATE</a> = -4, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532ab0746d0801a99639077b325594b347b5">CO_ERROR_RX_OVERFLOW</a> = -5, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a7e4cefeb35775754c87cf6a559f1bbd9">CO_ERROR_RX_PDO_OVERFLOW</a> = -6, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a3e40e8440a8480c413d3ff724b875de4">CO_ERROR_RX_MSG_LENGTH</a> = -7, 
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a4829a460cbba557a2ff7f52bd912aa65">CO_ERROR_RX_PDO_LENGTH</a> = -8, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a757b4d226a3e00a9e2543cf21833d46f">CO_ERROR_TX_OVERFLOW</a> = -9, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a48993dc18698738d168071b4f4c3d244">CO_ERROR_TX_PDO_WINDOW</a> = -10, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a6f07e7c21acde035b561edc7f55edb89">CO_ERROR_TX_UNCONFIGURED</a> = -11, 
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a737e67c9f8d3ca882a3cba852153c1f3">CO_ERROR_OD_PARAMETERS</a> = -12, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532aa053301213d13670e9af7d31abc1ee48">CO_ERROR_DATA_CORRUPT</a> = -13, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a25eaff6474c6bc2aae67b1e7c7a35109">CO_ERROR_CRC</a> = -14, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532ab47ecc1b08463eb986fd29c187096343">CO_ERROR_TX_BUSY</a> = -15, 
<br />
&#160;&#160;<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a07457c9c6eda89fc0260e6d7e431424c">CO_ERROR_WRONG_NMT_STATE</a> = -16, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a46d81c922ecbaf8f136626725ad8399d">CO_ERROR_SYSCALL</a> = -17, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532a57f1c4d2d960ab2550669a1c5ebbf4e1">CO_ERROR_INVALID_STATE</a> = -18, 
<a class="el" href="group__CO__driver.html#gga1cb2d3466eb0c6d267f3b5ff1a0d9532ac7a6f0554ae52997b88a97b46a16e5a3">CO_ERROR_NODE_ID_UNCONFIGURED_LSS</a> = -19
<br />
 }</td></tr>
<tr class="memdesc:ga1cb2d3466eb0c6d267f3b5ff1a0d9532"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return values of some CANopen functions.  <a href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">More...</a><br /></td></tr>
<tr class="separator:ga1cb2d3466eb0c6d267f3b5ff1a0d9532"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga23168979123a5ca8a87d49307eb2990e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e">CANrx_callback</a> (void *object, void *rxMsg)</td></tr>
<tr class="memdesc:ga23168979123a5ca8a87d49307eb2990e"><td class="mdescLeft">&#160;</td><td class="mdescRight">CAN receive callback function which pre-processes received CAN message.  <a href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e">More...</a><br /></td></tr>
<tr class="separator:ga23168979123a5ca8a87d49307eb2990e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga018e9159b92165b2506a6673113cdc0e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__CAN__Message__reception.html#ga018e9159b92165b2506a6673113cdc0e">CO_CANrxMsg_readIdent</a> (void *rxMsg)</td></tr>
<tr class="memdesc:ga018e9159b92165b2506a6673113cdc0e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e" title="CAN receive callback function which pre-processes received CAN message.">CANrx_callback()</a> can read CAN identifier from received CAN message.  <a href="group__CO__CAN__Message__reception.html#ga018e9159b92165b2506a6673113cdc0e">More...</a><br /></td></tr>
<tr class="separator:ga018e9159b92165b2506a6673113cdc0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacec1dcf8b7e66ea2e65905f91321b299"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__CAN__Message__reception.html#gacec1dcf8b7e66ea2e65905f91321b299">CO_CANrxMsg_readDLC</a> (void *rxMsg)</td></tr>
<tr class="memdesc:gacec1dcf8b7e66ea2e65905f91321b299"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e" title="CAN receive callback function which pre-processes received CAN message.">CANrx_callback()</a> can read Data Length Code from received CAN message.  <a href="group__CO__CAN__Message__reception.html#gacec1dcf8b7e66ea2e65905f91321b299">More...</a><br /></td></tr>
<tr class="separator:gacec1dcf8b7e66ea2e65905f91321b299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab02a5fe910acf9aa5021f97e523697f9"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__CAN__Message__reception.html#gab02a5fe910acf9aa5021f97e523697f9">CO_CANrxMsg_readData</a> (void *rxMsg)</td></tr>
<tr class="memdesc:gab02a5fe910acf9aa5021f97e523697f9"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e" title="CAN receive callback function which pre-processes received CAN message.">CANrx_callback()</a> can read pointer to data from received CAN message.  <a href="group__CO__CAN__Message__reception.html#gab02a5fe910acf9aa5021f97e523697f9">More...</a><br /></td></tr>
<tr class="separator:gab02a5fe910acf9aa5021f97e523697f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88ef52baae169a80e4c2f2cb93b33747"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga88ef52baae169a80e4c2f2cb93b33747">CO_CANsetConfigurationMode</a> (void *CANptr)</td></tr>
<tr class="memdesc:ga88ef52baae169a80e4c2f2cb93b33747"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request CAN configuration (stopped) mode and <em>wait</em> until it is set.  <a href="group__CO__driver.html#ga88ef52baae169a80e4c2f2cb93b33747">More...</a><br /></td></tr>
<tr class="separator:ga88ef52baae169a80e4c2f2cb93b33747"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad654edfa651bf7b68263913786697200"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gad654edfa651bf7b68263913786697200">CO_CANsetNormalMode</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule)</td></tr>
<tr class="memdesc:gad654edfa651bf7b68263913786697200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request CAN normal (operational) mode and <em>wait</em> until it is set.  <a href="group__CO__driver.html#gad654edfa651bf7b68263913786697200">More...</a><br /></td></tr>
<tr class="separator:gad654edfa651bf7b68263913786697200"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a1131813110529494cee5e27c0bf28d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">CO_ReturnError_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga3a1131813110529494cee5e27c0bf28d">CO_CANmodule_init</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule, void *CANptr, <a class="el" href="structCO__CANrx__t.html">CO_CANrx_t</a> rxArray[], <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> rxSize, <a class="el" href="structCO__CANtx__t.html">CO_CANtx_t</a> txArray[], <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> txSize, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> CANbitRate)</td></tr>
<tr class="memdesc:ga3a1131813110529494cee5e27c0bf28d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize CAN module object.  <a href="group__CO__driver.html#ga3a1131813110529494cee5e27c0bf28d">More...</a><br /></td></tr>
<tr class="separator:ga3a1131813110529494cee5e27c0bf28d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6f60f9da27dda0c9b3950c4e96bd687"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gac6f60f9da27dda0c9b3950c4e96bd687">CO_CANmodule_disable</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule)</td></tr>
<tr class="memdesc:gac6f60f9da27dda0c9b3950c4e96bd687"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switch off CANmodule.  <a href="group__CO__driver.html#gac6f60f9da27dda0c9b3950c4e96bd687">More...</a><br /></td></tr>
<tr class="separator:gac6f60f9da27dda0c9b3950c4e96bd687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga25ee22cd2e3a2f3bb49990e8bc3076b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">CO_ReturnError_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga25ee22cd2e3a2f3bb49990e8bc3076b0">CO_CANrxBufferInit</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> index, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> ident, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> mask, <a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a> rtr, void *object, void(*<a class="el" href="group__CO__CAN__Message__reception.html#ga23168979123a5ca8a87d49307eb2990e">CANrx_callback</a>)(void *object, void *message))</td></tr>
<tr class="memdesc:ga25ee22cd2e3a2f3bb49990e8bc3076b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure CAN message receive buffer.  <a href="group__CO__driver.html#ga25ee22cd2e3a2f3bb49990e8bc3076b0">More...</a><br /></td></tr>
<tr class="separator:ga25ee22cd2e3a2f3bb49990e8bc3076b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga01e2ee79e7e3a8b321dac831e7e00976"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structCO__CANtx__t.html">CO_CANtx_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga01e2ee79e7e3a8b321dac831e7e00976">CO_CANtxBufferInit</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> index, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> ident, <a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a> rtr, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> noOfBytes, <a class="el" href="group__CO__dataTypes.html#ga449976458a084f880dc8e3d29e7eb6f5">bool_t</a> syncFlag)</td></tr>
<tr class="memdesc:ga01e2ee79e7e3a8b321dac831e7e00976"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure CAN message transmit buffer.  <a href="group__CO__driver.html#ga01e2ee79e7e3a8b321dac831e7e00976">More...</a><br /></td></tr>
<tr class="separator:ga01e2ee79e7e3a8b321dac831e7e00976"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4664a9f5d547cb0605a9e929fb079f2e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CO__driver.html#ga1cb2d3466eb0c6d267f3b5ff1a0d9532">CO_ReturnError_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga4664a9f5d547cb0605a9e929fb079f2e">CO_CANsend</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule, <a class="el" href="structCO__CANtx__t.html">CO_CANtx_t</a> *buffer)</td></tr>
<tr class="memdesc:ga4664a9f5d547cb0605a9e929fb079f2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send CAN message.  <a href="group__CO__driver.html#ga4664a9f5d547cb0605a9e929fb079f2e">More...</a><br /></td></tr>
<tr class="separator:ga4664a9f5d547cb0605a9e929fb079f2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbeac85cbf513162b11fc3d0717b0753"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gabbeac85cbf513162b11fc3d0717b0753">CO_CANclearPendingSyncPDOs</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule)</td></tr>
<tr class="memdesc:gabbeac85cbf513162b11fc3d0717b0753"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all synchronous TPDOs from CAN module transmit buffers.  <a href="group__CO__driver.html#gabbeac85cbf513162b11fc3d0717b0753">More...</a><br /></td></tr>
<tr class="separator:gabbeac85cbf513162b11fc3d0717b0753"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga066c6742f75b2daac585735ffd6c9928"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga066c6742f75b2daac585735ffd6c9928">CO_CANmodule_process</a> (<a class="el" href="structCO__CANmodule__t.html">CO_CANmodule_t</a> *CANmodule)</td></tr>
<tr class="memdesc:ga066c6742f75b2daac585735ffd6c9928"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process can module - verify CAN errors.  <a href="group__CO__driver.html#ga066c6742f75b2daac585735ffd6c9928">More...</a><br /></td></tr>
<tr class="separator:ga066c6742f75b2daac585735ffd6c9928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27a4052f87c60cf2df472378689c2ef9"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga27a4052f87c60cf2df472378689c2ef9">CO_getUint8</a> (const void *buf)</td></tr>
<tr class="memdesc:ga27a4052f87c60cf2df472378689c2ef9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get uint8_t value from memory buffer.  <a href="group__CO__driver.html#ga27a4052f87c60cf2df472378689c2ef9">More...</a><br /></td></tr>
<tr class="separator:ga27a4052f87c60cf2df472378689c2ef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6590fe7a05ecb4b81ee3d7e233274ea4"><td class="memItemLeft" align="right" valign="top">
static <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga6590fe7a05ecb4b81ee3d7e233274ea4">CO_getUint16</a> (const void *buf)</td></tr>
<tr class="memdesc:ga6590fe7a05ecb4b81ee3d7e233274ea4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get uint16_t value from memory buffer, see <a class="el" href="group__CO__driver.html#ga27a4052f87c60cf2df472378689c2ef9">CO_getUint8</a>. <br /></td></tr>
<tr class="separator:ga6590fe7a05ecb4b81ee3d7e233274ea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21cd9e2391f276b908bcde5769e967ed"><td class="memItemLeft" align="right" valign="top">
static <a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga21cd9e2391f276b908bcde5769e967ed">CO_getUint32</a> (const void *buf)</td></tr>
<tr class="memdesc:ga21cd9e2391f276b908bcde5769e967ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get uint32_t value from memory buffer, see <a class="el" href="group__CO__driver.html#ga27a4052f87c60cf2df472378689c2ef9">CO_getUint8</a>. <br /></td></tr>
<tr class="separator:ga21cd9e2391f276b908bcde5769e967ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61de0908305223a0a7949e184cc1d644"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga61de0908305223a0a7949e184cc1d644">CO_setUint8</a> (void *buf, <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> value)</td></tr>
<tr class="memdesc:ga61de0908305223a0a7949e184cc1d644"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write uint8_t value into memory buffer.  <a href="group__CO__driver.html#ga61de0908305223a0a7949e184cc1d644">More...</a><br /></td></tr>
<tr class="separator:ga61de0908305223a0a7949e184cc1d644"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf74a6b7343bc9d6efd5ec5d9d9f965fb"><td class="memItemLeft" align="right" valign="top">
static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#gaf74a6b7343bc9d6efd5ec5d9d9f965fb">CO_setUint16</a> (void *buf, <a class="el" href="group__CO__dataTypes.html#ga1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> value)</td></tr>
<tr class="memdesc:gaf74a6b7343bc9d6efd5ec5d9d9f965fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write uint16_t value into memory buffer, see <a class="el" href="group__CO__driver.html#ga61de0908305223a0a7949e184cc1d644">CO_setUint8</a>. <br /></td></tr>
<tr class="separator:gaf74a6b7343bc9d6efd5ec5d9d9f965fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9dbc7193fbd875503e0b3b34ea22434e"><td class="memItemLeft" align="right" valign="top">
static <a class="el" href="group__CO__dataTypes.html#gaba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__driver.html#ga9dbc7193fbd875503e0b3b34ea22434e">CO_setUint32</a> (void *buf, <a class="el" href="group__CO__dataTypes.html#ga33594304e786b158f3fb30289278f5af">uint32_t</a> value)</td></tr>
<tr class="memdesc:ga9dbc7193fbd875503e0b3b34ea22434e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write uint32_t value into memory buffer, see <a class="el" href="group__CO__driver.html#ga61de0908305223a0a7949e184cc1d644">CO_setUint8</a>. <br /></td></tr>
<tr class="separator:ga9dbc7193fbd875503e0b3b34ea22434e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Interface between CAN hardware and CANopenNode. </p>
<dl class="section author"><dt>Author</dt><dd>Janez Paternoster </dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>2004 - 2020 Janez Paternoster</dd></dl>
<p>This file is part of CANopenNode, an opensource CANopen Stack. Project home page is <a href="https://github.com/CANopenNode/CANopenNode">https://github.com/CANopenNode/CANopenNode</a>. For more information on CANopen see <a href="http://www.can-cia.org/">http://www.can-cia.org/</a>.</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at </p><pre class="fragment">http://www.apache.org/licenses/LICENSE-2.0
</pre><p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_f17b92000dd778003adbbcb6b5ce4226.html">301</a></li><li class="navelem"><a class="el" href="CO__driver_8h.html">CO_driver.h</a></li>
    <li class="footer">Generated on Thu Dec 24 2020 14:30:50 for CANopenNode by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
